package cn.harry.cabinet.server.dto.common

import kotlinx.serialization.InternalSerializationApi
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * 通用分页请求DTO
 */
@InternalSerializationApi
@Serializable
data class PaginationRequest(
    @SerialName("page")
    val page: Int = 1,

    @SerialName("size")
    val size: Int = 20
) {
    /**
     * 验证分页参数的有效性
     */
    fun isValid(): Boolean {
        return page > 0 && size > 0 && size <= 100
    }

    /**
     * 计算偏移量
     */
    fun getOffset(): Int = (page - 1) * size
} 